package cn.itcalvin.sncoal.cth.pojo.response.user;

import cn.itcalvin.sncoal.cth.config.NullToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Data
public class RespUserList {
    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @NotNull(message = "主键不能为null")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 角色类型
     */
    @ApiModelProperty(value="登录角色 1.股份 2.专家 3.矿区 4.矿井")
    private Integer roleId;
    private String roleIdName;
    public String getRoleIdName(){
        switch (roleId){
            case 1:
                return "股份";
            case 2:
                return "专家";
            case 3:
                return "矿区";
            case 4:
                return "矿井";
            default:
                return "未知";
        }
    }


    private Long belongId;
    @JsonSerialize(nullsUsing = NullToStringSerializer.class)
    private String mineName;

    /**
     * 用户名或者矿井名称
     */
    @ApiModelProperty(value = "用户名或者矿井名称")
    @Size(max = 255, message = "用户名或者矿井名称最大长度要小于 255")
    @NotBlank(message = "用户名或者矿井名称不能为空")
    private String userName;


    /**
     * 登录账号
     */
    @ApiModelProperty(value = "登录账号")
    @Size(max = 50, message = "登录账号最大长度要小于 50")
    @NotBlank(message = "登录账号不能为空")
    private String loginName;

    /**
     * 状态 1.可用 2.禁用
     */
    @ApiModelProperty(value = "状态 1.可用 2.禁用")
    @NotNull(message = "状态 1.可用 2.禁用不能为null")
    private Integer loginState;

    @ApiModelProperty(value="是否是管理员")
    @NotNull(message = "是否是管理员不能为null")
    private Boolean isManager;

    @ApiModelProperty(value="系统ID列表")
    private List<Long> systemIdList;
}
